package com.lizardmind.haofudoctor.other.rongYun

import android.os.Parcel
import android.os.Parcelable
import com.lizardmind.haofudoctor.other.jsonOf
import io.rong.common.ParcelUtils
import io.rong.imlib.MessageTag
import io.rong.imlib.model.MessageContent
import org.json.JSONObject

/**
 * 浩福基本消息（问诊单、方案、复诊单）
 * Created by Extends on 2017/12/4 15:34
 */
@MessageTag(value = MessageTags.HAOFU,flag = MessageTag.ISCOUNTED or MessageTag.ISPERSISTED)
class HaofuMessage() :MessageContent() {
    var id = ""//类型的id
    var type = "0"//0:问诊单，1：方案，2：复诊单
    constructor(parcel: Parcel) : this() {
        id = ParcelUtils.readFromParcel(parcel)
        type = ParcelUtils.readFromParcel(parcel)
    }
    constructor(byteArray: ByteArray) : this(JSONObject(String(byteArray)))

    constructor(json: JSONObject):this(){
        if(json.has("id")){
            id = json.optString("id")
        }
        if(json.has("type")){
            type = json.optString("type")
        }

    }

    override fun writeToParcel(dest: Parcel, flags: Int) {
        ParcelUtils.writeToParcel(dest,id)
        ParcelUtils.writeToParcel(dest,type)
    }

    override fun encode(): ByteArray {
        return jsonOf("id" to id,"type" to type).toString().toByteArray()
    }

    override fun describeContents(): Int = 0

    companion object CREATOR : Parcelable.Creator<HaofuMessage> {
        override fun createFromParcel(parcel: Parcel): HaofuMessage {
            return HaofuMessage(parcel)
        }

        override fun newArray(size: Int): Array<HaofuMessage?> {
            return arrayOfNulls(size)
        }
    }
}